#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import MySQLdb
import sys

db_source = MySQLdb.connect(db = 'maxk69_marketer', host = '127.0.0.1', port = 3310, user = 'maxk69', passwd = 'Oups,IveLostMyPassword!')
db_cible = MySQLdb.connect(db = 'megabase', user = 'root', passwd = 'OhGheiw8EichahGh')

listes = [18, 19, 20, 21, 24]

cur2 = db_cible.cursor()

for liste in listes:

    ## Extraction des adresses

    cur = db_source.cursor()
    print('\n---------Extraction de la liste ' + str(liste) + ' --------')
    cur.execute("SELECT `emailaddress` FROM `em_list_subscribers` WHERE `listid`=" + str(liste) + " AND `bounced`<>0")

    ## Calcul du nombre total d'adresses a traiter

    curT = db_source.cursor()
    curT.execute("SELECT count(*) FROM `em_list_subscribers` WHERE `listid`=" + str(liste) + " AND `bounced`<>0")
    nombre_total = curT.fetchone()[0]
    curT.close()

    ## Initialisation du compteur

    compteur = 0

    ## Parcours des resultats

    round = cur.fetchone()
    print('\nLecture et traitement des resultats')
    while (round != None):

        ## Lecture de l'adresse

        current_email = round[0]

        ## Test de l'existence de l'adresse

        cur2.execute("SELECT `adresse` FROM `adresses` WHERE `adresse`='" + current_email + "' AND `bounced`=0")
        if cur2.fetchone() != None:
            compteur = compteur + 1

            ## Affichage du compteur si nécessaire

            if (compteur == 1) or (compteur > 9999 and compteur % 10000 == 0) or (compteur == nombre_total):
                print('\nTraitement adresse ' + str(compteur) + '/' + str(nombre_total))

            ## Traitement de l'adresse

            cur3 = db_cible.cursor()
            cur3.execute("UPDATE `adresses` SET `bounced`=1 WHERE `adresse`='" + current_email + "'")
            cur3.close()

        ## Passage a l'iteration suivante

        round = cur.fetchone()

    ## Affichage du nombre d'enregistrements traités

    print('\nTotal : ' + str(compteur) + ' adresses bouncees')

    ## Application des changements

    print('\n-------------------Commit--------------------\n')
    db_cible.commit()

    ## Fermeture du curseur principal

    cur.close()

## Fermeture du curseur d'execution

cur2.close()

## Fin du script

print('\nFini !!\n\n')

sys.exit(0)
